============== Course Outline ============== Exception Handling ------------------ * ARM modes * Names * Registers * Permissions * Exceptions * Exception types * Mapping to modes * Step by step transition from mode to mode * Using MSR and MRS * Handling exceptions * Setting up vectors * Setting mode stacks * Current context * Saving context * Working with a stack * Stack direction * Changing stack pointer * Especially assembly symbols * Load and Store multiples * Homework * uDebugger Context Switch -------------- * Context Switch * Homework * Context Switch Introduction to uCOS -------------------- * uCOS intro * Overview * Startup * Stacks * Tasks * Starting a tasks uCOS Tasks ---------- * uCOS Task details * Task states * Creating * Deleting * Query * Resuming * Task control blocks * Timer delays Synchronization - Part 1 ------------------------ * Basic concept * Task cooperation * Sharing data * Causes and prevention of data corruption * Critical sections * Semaphores * Patterns 1 * Homework * Semaphore homework - TBD Synchronization - Part 2 ------------------------ * Deadlocks * Priority Inversions * Mutexes * Mailboxes * Queues * Flags * Pattern 2 Memory Managment ---------------- * Stacks * Fast * Builtin support * Part of C language * Automatic reclaiming * Short lifespan * Should not be shared beyond lifespan of the caller * Heaps * Long life span * Requires management code * Slower * Fragmentation issues * Very flexible * Can be shared between tasks * Memory partioner * Long life span * Light weight * Fast * Needs to be setup ahead of time * Can be shared Drivers ------- * Purpose * Interface conventions * Setup * Usage * Examples Music Player Project -------------------- * Objective * Top down * Project Large operating systems ----------------------- * Intro to virtual memory * Translation lookaside buffer * Process and threads * User vs kernel space Final -----